home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / lib / gkismet / InfoBox.pm < prev    next >
Text File  |  2005-10-20  |  2KB  |  112 lines

  1. #!/usr/bin/perl -w
  2. #
  3. # $Id: InfoBox.pm,v 1.22 2003/07/23 04:22:40 solovam Exp $
  4. #
  5. # This file is a part of gkismet
  6. #
  7. # This program is free software; you can redistribute it and/or
  8. # modify it under the terms of the GNU General Public License
  9. # as published by the Free Software Foundation; either version 2
  10. # of the License, or (at your option) any later version.
  11. #
  12. # This program is distributed in the hope that it will be useful,
  13. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  15. # GNU General Public License for more details.
  16. #
  17. # You should have received a copy of the GNU General Public License
  18. # along with this program; if not, write to the Free Software
  19. # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  20. #
  21.  
  22. #
  23. # InfoBox class
  24. #
  25. package InfoBox;
  26.  
  27. use Gtk;
  28. use Misc;
  29. use ReusableConnObserver;
  30. use strict;
  31. @InfoBox::ISA = qw(ReusableConnObserver);
  32.  
  33. #
  34. # Constructor
  35. #
  36. sub new
  37. {
  38.     my $type = shift;
  39.     my $self = new ReusableConnObserver(@_);
  40.     bless $self, $type;
  41.  
  42.     my $frame = new Gtk::Frame(undef);
  43.     $self->{'frame'} = $frame;
  44.     $frame->set_label($self->getTitle());
  45.     my $vbox = new Gtk::VBox($false, 5);
  46.     $frame->add($vbox);
  47.  
  48.     for my $l ($self->getLabels())
  49.     {
  50.         my $hbox = new Gtk::HBox($false, 1);
  51.  
  52.         my $nlabel = new Gtk::Label($l . ': ');
  53.         $nlabel->set_justify('left');
  54.         $hbox->pack_start($nlabel, $false, $false, 5);
  55.  
  56.         my $vlabel = new Gtk::Label('');
  57.         $vlabel->set_justify('right');
  58.         $hbox->pack_end($vlabel, $false, $false, 5);
  59.  
  60.         $vbox->pack_start($hbox, $false, $false, 3);
  61.     
  62.         $self->{'label'}{$l} = $vlabel;
  63.     }
  64.     $frame->show_all();
  65.  
  66.     return $self;
  67. }
  68.  
  69. #
  70. # Remove all stored data
  71. #
  72. sub flush
  73. {
  74.     my $self = shift;
  75.     for my $l ($self->getLabels())
  76.     {
  77.         $self->{'label'}{$l}->set_text('');
  78.     }
  79. }
  80.  
  81. #
  82. # Handle an update from an observable
  83. #
  84. sub update
  85. {
  86.     my $self = shift;
  87.     my $object = shift;
  88.     my $data = shift;
  89.  
  90.     if($object->isa('Connection') && defined $self->{'connection'} && $self->{'connection'} eq $object)
  91.     {
  92.         if($self->isInterestingUpdate($data))
  93.         {
  94.             for my $l ($self->getLabels())
  95.             {
  96.                 $self->{'label'}{$l}->set_text($self->getValue($l));
  97.             }
  98.         }
  99.     }
  100. }
  101.  
  102. #
  103. # Get Gtk widget
  104. #
  105. sub getWidget
  106. {
  107.     my $self = shift;
  108.     return($self->{'frame'});
  109. }
  110.  
  111. 1;
  112.